package testOne2Ten;

/**
 * 斐波那契数列的第n项
 * <p>
 * 第二题
 * 一只青蛙一次可以跳上1级台阶，也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
 * f(n) = f(n-1)+f(n-2)+...+1;
 * f(n) = 2f(n-1);
 * f(n) = 2^(n-1);
 * Created by Wongy on 2018/3/13.
 */
public class test9 {
    private static int getFibonacci(int num) {
        if (num < 2) {
            return num >= 0 ? num : 0;
        }
        int prePreNum = 0;
        int preNum = 1;
        int result = 0;
        for (int i = 2; i <= num; i++) {
            result = prePreNum + preNum;
            prePreNum = preNum;
            preNum = result;
        }
        return result;
    }

    private static int jumpFloor(int num) {
        return num >=  0 ? 1 << (num - 1) : 0;
    }
    public static void main(String[] args) {
        int a = getFibonacci(3);
        System.out.println("Nine9.main , 27 : " + a);
        int b = jumpFloor(2);
        System.out.println("Nine9.main , 36 : " + b);
    }
}
